#include <string>

#include <logger.h>

namespace A {
std::string GetValue()
{
    return __PRETTY_FUNCTION__;
}
} // namespace A


namespace B {
std::string GetValue()
{
    return __PRETTY_FUNCTION__;
}

namespace C {
std::string GetValue()
{
    return __PRETTY_FUNCTION__;
}
}
} // namespace B

int main()
{
    VALUE_LOGGER(A::GetValue());
    VALUE_LOGGER(B::GetValue());
    VALUE_LOGGER(B::C::GetValue());

    {
        using namespace A;
        VALUE_LOGGER(GetValue());
    }

    {
        using namespace B;
        VALUE_LOGGER(GetValue());
    }

    {
        using namespace B::C;
        VALUE_LOGGER(GetValue());
    }

    {
        namespace C = B::C;
        VALUE_LOGGER(C::GetValue());
    }
    return 0;
}
